/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package TablaSimbolos;

/**
 *
 * @author Diego
 */
public class entradaVariable extends entradaTS{

    //String nombreVar;
    String nameClassVar;//indica a que clase pertenece la variable (donde fue definida)
    int offsetlocal; //indica la posicion de la variable de forma local
    //int offsetglobal;//indica la posicion de la variable de forma global
    entradaClase tipo;    
    
    /************************************************************************/
    /* Implementacion de los metodos de la clase entradaVariable
    /************************************************************************/
    
    /**
     * Devuelve el offset local de la variable.
     * @return int º Devuelve el offset local de la variable.
     */
    public int darOffsetVarLocal()
    {
        return offsetlocal;
    }
    
    /**
     * Devuelve el offset global de la variable.
     * @return int º Devuelve el offset global de la variable.
     */
    
   /* public int darOffsetVarGlobal()
    {
        return offsetglobal;
    }*/
    
    /**
     * Setea el offset local de la variable.Esto es respecto a la clase que la
     * define
     */
    public void setearOffsetLocal(int ofst)
    {
        offsetlocal=ofst;
    }
    
    /**
     * Setea el offset global de la variable.Esto es respecto a la clase que la
     * define
     */
    /*
    public void setearOffsetGlobal(int ofst)
    {
        offsetglobal=ofst;
    }*/
    
    /**
     * Mantiene el nombre de la clase en donde se definio la variable
     * @param ncv es el nombre de la clase donde se definio la variable
     */
    
    public void setearPertenecienteClase(String ncv)
    {
        nameClassVar=ncv;
    }
    
    /**
     * Devuelve el nombre de la clase en donde se definio la variable
     * @return String retorna el nombre de la clase que definio la variable.
     */
    
    public String darClaseVariable()
    {
        return nameClassVar;
    }
    
    /**
     * Setea el tipo de la variable. Puede ser de tipo primitivo: int,boolean,
     * char,String. Si es null es de tipo void o ser del tipo de una clase.
     * @param tipovariable define el tipo de la variable.
     */
    
    public void setearTipo(entradaClase tipovariable)
    {
        tipo=tipovariable;
    }
            
    /**
     * Devuelve el tipo de la variable.
     * El tipo que devuelve es de tipo entradaClase y debe considerarse la 
     * siguiente convencion:
     * Tipos primitivos: int, char, boolean, String.
     * void: retorna null.
     * De Clase: retorna un tipo Clase.
     * @return entradaClase retorna el tipo de la variable.
     */
    
    public entradaClase darTipo()
    {
        return tipo;
    }
    
    /**
     * Retorna el tipo de la variable en formato String.
     * @return Retorna en formato String el tipo de la variable.
     */
    
    public String toStringTipoV()
    {
        return this.tipo.darNombre();
    }
    
    /************************************************************************/
    /* Constructor de la clase entradaVaiable
    /************************************************************************/    
    public entradaVariable(String nameofVar)
    {
        super (nameofVar);        
    }
}
